Enviado por: Electros
Fecha: 2003-06-15 02:00:55
Actualizado: 2004-08-28 18:21:08
¿Usa base de datos?: 1
Visitas: 7702
Votos: 9
Descargado: 1916 veces
Valoración: 4.44
» Valora este script «
ZipDescargar

Este sistema te permitir� poder enviar noticias a tu web, para que de esta forma no tengas la necesidad de estar actualizando constantemente tu p�gina, tambi�n tendr�s la opci�n de que tus visitantes puedan escribir comentarios, y as�, puedas saber las distintas opiniones sobre la noticia. El sistema se compone de 3 archivos: [b]noticiasenviar.php[/b] [b]noticias.php[/b] [b]noticiascom.php[/b] El funcionamiento de los archivos es el siguiente: [b]noticiasenviar.php[/b] En esta p�gina es donde se env�an las noticias a tu web. [b]noticias.php[/b] Aqu� se mostrar�n las noticias que se encuentren almacenadas en la base de datos. [b]noticiascom.php[/b] Esta p�gina guardar� los comentarios en la base de datos y regresar� a la p�gina con la noticia. Primero debes crear las tablas noticias y noticiascom en la base de datos, si usas el phpMyAdmin debes copiar el siguiente c�digo y pegarlo en donde dice SQL. [codigo]create TABLE noticias ( id tinyint(3) unsigned not null auto_increment, fecha int(10) unsigned not null, usuario varchar(20) not null, titulo varchar(100) not null, noticia tinytext not null, noticiaext text not null, primary key (id) ) ; create TABLE noticiascom ( id smallint(5) unsigned not null auto_increment, noticia tinyint(3) unsigned not null, fecha int(10) unsigned not null, usuario varchar(20) not null, comentario tinytext not null, primary key (id), index (noticia) )[/codigo] Ahora debes crear el archivo [b]noticiasenviar.php[/b] con el siguiente c�digo: [codigo]<? if($enviar) { include("config.php") ; function quitar($texto) { $texto = trim($texto) ; $texto = htmlspecialchars($texto) ; return $texto ; } $fecha = time() ; $usuario = quitar($usuario) ; $titulo= quitar($titulo) ; $noticia= quitar($noticia) ; $noticiaext= quitar($noticiaext) ; mysql_query("insert INTO noticias (fecha,usuario,titulo,noticia,noticiaext) values ('$fecha','$usuario','$titulo','$noticia','$noticiaext')") ; echo "La noticia ha sido enviada con �xito." ; mysql_close($conectar) ; } ?> <form method="post" action="noticiasenviar.php"> Usuario:<br> <input type="text" name="usuario" maxlength="20"><br> T�tulo:<br> <input type="text" name="titulo" maxlength="100"><br> Noticia:<br> <textarea name="noticia" cols="30" rows="5"></textarea><br> Noticia extendida:<br> <textarea name="noticiaext" cols="30" rows="5"></textarea><br><br> <input type="submit" name="enviar" value="Enviar"> </form>[/codigo] Debes saber que [b]noticia[/b] tiene el valor [b]tinytext[/b] en la base de datos, este atributo nos ofrece 255 caract�res para almacenar la noticia y [b]noticiaext[/b] tiene el valor [b]text[/b] el cu�l nos ofrece un espacio de 65535 caract�res. Ahora crearemos la p�gina que mostrar� las noticias, para esto debes crear el archivo [b]noticias.php[/b] con el siguiente c�digo: [codigo]<? include("config.php") ; if($n) { $resp = mysql_query("select * FROM noticias where id='$n'") ; $datos = mysql_fetch_array($resp) ; // Mostrar la fecha en texto $fecha = $datos[fecha] ; $mesesano = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto", "Septiembre","Octubre","Noviembre","Diciembre") ; $diames = date(j,$fecha) ; $mesano = date(n,$fecha) - 1 ; $ano = date(Y,$fecha) ; $fecha = "$diames $mesesano[$mesano] $ano" ; // Se agregar�n los <br> correspondientes a la noticia extendida $noticiaext = $datos[noticiaext] ; $noticiaext = str_replace("\r\n","<br>",$noticiaext) ; echo " <table width=100% border=0 cellpadding=5 cellspacing=0 style=\"border: #757575 ; background: #252525\"> <tr> <td>$datos[titulo]</td> <td><div align=right>$fecha</div></td> </tr> <tr> <td colspan=2> $datos[noticia]<br><br> $noticiaext<br><br> <b>Enviada por:</b> $datos[usuario]<br> <a href=noticias.php>Regresar a la p�gina principal</a> <p> " ; mysql_free_result($resp) ; echo "<p><b>Comentarios</b>" ; $mostrar = 5 ; if(!$desde) { $desde = 0 ; } $resp = mysql_query("select * FROM noticiascom where noticia='$n' ORDER BY id desc LIMIT $desde,$mostrar") ; $desde = $desde + $mostrar ; if(mysql_num_rows($resp) == 0) { echo "<p>No se encontraron comentarios." ; } else { $comentarios = mysql_num_rows($resp) ; echo " <p><b>Total de comentarios:</b> $comentarios <p> " ; while($datos = mysql_fetch_array($resp)) { // Mostrar fecha en texto $fecha = $datos[fecha] ; $mesesano = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto", "Septiembre","Octubre","Noviembre","Diciembre") ; $diames = date(j,$fecha) ; $mesano = date(n,$fecha) - 1 ; $ano = date(Y,$fecha) ; $fecha = "$diames $mesesano[$mesano] $ano" ; echo " <table width=100% border=0 cellpadding=1 cellspacing=0 style=\"border: #757575 ; background: #252525\"> <tr> <td><b><$datos[usuario]></b></td> <td><div align=right><b>$fecha</b></div></td> </tr> <tr> <td colspan=2> $datos[comentario] </td> </tr> </table><br> " ; } ?> <p align="right"><a href="noticias.php?n=<? echo $n ?>&desde=<? echo $desde ?>">Siguientes <? echo $desde ?> comentarios</a> <? } mysql_free_result($resp) ; echo " <p> <p><b>Escribir comentario</b> <p> <form method=post action=noticiascom.php> <input type=hidden name=noticia value=$n> Usuario:<br> <input type=text name=usuario maxlength=20><br> Comentario:<br> <textarea name=comentario cols=30 rows=5></textarea><br><br> <input type=submit name=enviar value=Enviar> </form> </td> </tr> </table> " ; } else { $mostrar = 10 ; $resp = mysql_query("select * FROM noticias ORDER BY id desc LIMIT $mostrar") ; while($datos = mysql_fetch_array($resp)) { // Mostrar la fecha en texto $fecha = $datos[fecha] ; $mesesano = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto", "Septiembre","Octubre","Noviembre","Diciembre") ; $diames = date(j,$fecha) ; $mesano = date(n,$fecha) - 1 ; $ano = date(Y,$fecha) ; $fecha = "$diames $mesesano[$mesano] $ano" ; $resp2 = mysql_query("select id FROM noticiascom where noticia='$datos[id]'") ; $comentarios = mysql_num_rows($resp2) ; echo " <table width=100% border=0 cellpadding=5 cellspacing=0 style=\"border: #757575 ; background: #252525\"> <tr> <td>$datos[titulo]</td> <td><div align=right>$fecha</div></td> </tr> <tr> <td colspan=2> $datos[noticia] </td> </tr> <tr> <td colspan=2> <table width=100% border=0 cellpadding=5 cellspacing=0> <tr> <td><a href=noticias.php?n=$datos[id]>Ver m�s</a></td> <td><b>Comentarios:</b> $comentarios</td> <td><div align=right><b>Enviada por:</b> $datos[usuario]</div></td> </tr> </table> </td> </tr> </table> " ; } mysql_free_result($resp) ; } mysql_close($conectar) ; ?>[/codigo] Por �ltimo creamos la p�gina que guardar� los comentarios en la base de datos, para esto debes meter el siguiente c�digo en un archivo llamado [b]noticiascom.php[/b]: [codigo]<? if($enviar) { include("config.php") ; function quitar($texto) { $texto = trim($texto) ; $texto = htmlspecialchars($texto) ; return $texto ; } $fecha = time() ; $usuario = quitar($usuario) ; $comentario = quitar($comentario) ; mysql_query("insert INTO noticiascom (noticia,fecha,usuario,comentario) values ('$noticia','$fecha','$usuario','$comentario')") ; mysql_close($conectar) ; header("location: noticias.php?n=$noticia") ; } ?>[/codigo] [b]Como integrar el sistema de noticias al sistema de registro de usuarios[/b] Para aquellos que les interese deben realizar los siguientes pasos: [b]1. Modificando el archivo noticiasenviar.php[/b] [b]-[/b] Primero abran la p�gina de noticiasenviar.php en un editor de texto o de html puro. [b]-[/b] Luego agreguen hasta arriba el siguiente c�digo: [codigo]<? include("ulogin.php") ; ?>[/codigo] [b]-[/b] Despu�s deben modificar la l�nea 10 y agregar en la variable $usuario el valor $_COOKIE["unick"] de esta forma: [codigo]$fecha = time() ; $usuario = $_COOKIE["unick"] ; $comentario = quitar($comentario) ;[/codigo] [b]-[/b] Por �ltimo s�lo eliminen las l�neas 20 y 21 que son para que el usuario agregue su nick. [codigo]Usuario:<br> <input type="text" name="usuario" maxlength="20"><br>[/codigo] [b]2. Modificando el archivo noticias.php[/b] [b]-[/b] Abran la p�gina de noticias.php. [b]-[/b] Eliminen las l�neas 72 y 73 que es para que el usuario pueda escribir su nick. [codigo]Usuario:<br> <input type=text name=usuario maxlength=20><br>[/codigo] [b]3. Modificando el archivo noticiascom.php[/b] [b]-[/b] Vuelvan a crear el archivo noticiascom.php con el siguiente c�digo: [codigo]<? if($enviar) { include("config.php") ; function quitar($texto) { $texto = trim($texto) ; $texto = htmlspecialchars($texto) ; return $texto ; } $fecha = time() ; $comentario = quitar($comentario) ; if($_COOKIE["unick"]) { $usuario = $_COOKIE["unick"] ; } else { $usuario = "Invitado" ; } mysql_query("insert INTO noticiascom (noticia,fecha,usuario,comentario) values ('$noticia','$fecha','$usuario','$comentario')") ; mysql_close($conectar) ; header("location: noticias.php?n=$noticia") ; } ?>[/codigo] Listo el sistema de noticias est� completamente terminado. Para cualquier duda puedes entrar en el foro.